﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using readFiles;

namespace DataManagement
{
    class Datos
    {
        LinkedList<ejemplar> ListaEjemplares = new LinkedList<ejemplar>();
        LinkedList<documento> ListaDocumentos = new LinkedList<documento>();
        LinkedList<autor> ListaAutores = new LinkedList<autor>();
        LinkedList<String> ListaMonosilabos = new LinkedList<String>();
        LinkedList<Usuario> L1 = new LinkedList<Usuario>();
        Conexion c1 = new Conexion("localhost", "5432", "postgres", "sigeb_pass123", "sigeb_bd");

        public LinkedList<Usuario> cargarUsuarios()
        {
            String line;
            string[] lineaSplit;
            string[] nombreSplit;
            try
            {
                StreamReader sr = new StreamReader("Usuarios.txt");
                line = sr.ReadLine();

                while (line != null)
                {
                    Usuario U1 = new Usuario();
                    lineaSplit = line.Split('*');
                    nombreSplit = lineaSplit[1].Split(' ');
                    if (nombreSplit.Length == 4)
                    {
                        U1.nombre = nombreSplit[0] + " " + nombreSplit[1];
                        U1.apellido1 = nombreSplit[2];
                        U1.apellido2 = nombreSplit[3];
                    }
                    if (nombreSplit.Length == 3)
                    {
                        U1.nombre = nombreSplit[0];
                        U1.apellido1 = nombreSplit[1];
                        U1.apellido2 = nombreSplit[2];
                    }
                    if (nombreSplit.Length == 2)
                    {
                        U1.nombre = nombreSplit[0];
                        U1.apellido1 = nombreSplit[1];
                    }

                    U1.cedula = lineaSplit[0];
                    U1.email = lineaSplit[2];
                    U1.domicilio = lineaSplit[3];
                    U1.telefono = lineaSplit[4];

                    L1.AddLast(U1);

                    line = sr.ReadLine();
                }
                sr.Close();
                return L1;
            }
            catch (Exception e)
            {
                return L1;
                Console.WriteLine("Exception: " + e.Message);
            }
        }

        public LinkedList<ejemplar> cargarEjemplares()
        {
            //String line;
            //string[] lineaSplit;
            try
            {/*
                StreamReader sr = new StreamReader("Fichas.txt");
                line = sr.ReadLine();

                while (line != null)
                {
                    ejemplar E1 = new ejemplar();
                    lineaSplit = line.Split('*');
                    E1.numAdquisicion = lineaSplit[0];
                    E1.fechaIngreso = c1.formatDate(lineaSplit[1]);

                    ListaEjemplares.AddLast(E1);

                    line = sr.ReadLine();
                }
                sr.Close();
                return ListaEjemplares;
              * */
                LinkedList<string[]> nueva = readExcel.ExcelOpenSpreadsheetsList("C:\\Users\\ragomezr\\Documents\\SIGEB\\BD\\Migracion\\DataManagement\\DataManagement\\bin\\Debug\\Fichas.xlsx", 6);
                foreach (string[] act in nueva)
                {
                    ejemplar E1 = new ejemplar();
                    E1.numAdquisicion = act[0];
                    //E1.fechaIngreso = c1.formatDate(act[1]);
                    E1.fechaIngreso = DateTime.Parse(act[1]);
                    ListaEjemplares.AddLast(E1);
                }
                return ListaEjemplares;
            }
            catch (Exception e)
            {
                return ListaEjemplares;
                Console.WriteLine("Exception: " + e.Message);
            }
        }

        public LinkedList<autor> cargarAutores()
        {
            //String line;
            //string[] lineaSplit;
            try
            {/*
                StreamReader sr = new StreamReader("Fichas.txt");
                line = sr.ReadLine();

                while (line != null)
                {
                    autor A1 = new autor();
                    lineaSplit = line.Split('*');
                    A1.nombre = lineaSplit[3];

                    ListaAutores.AddLast(A1);

                    line = sr.ReadLine();
                }
                sr.Close();
                return ListaAutores;
              * */
                LinkedList<string[]> nueva = readExcel.ExcelOpenSpreadsheetsList("C:\\Users\\ragomezr\\Documents\\SIGEB\\BD\\Migracion\\DataManagement\\DataManagement\\bin\\Debug\\Fichas.xlsx", 6);
                foreach (string[] act in nueva)
                {
                    autor A1 = new autor();
                    A1.nombre = act[3];
                    ListaAutores.AddLast(A1);
                }
                return ListaAutores;
            }
            catch (Exception e)
            {
                return ListaAutores;
                Console.WriteLine("Exception: " + e.Message);
            }
        }

        public LinkedList<documento> cargarDocumentos()
        {
            
            //String line;
            //string[] lineaSplit;
            try
            {
                /*
                StreamReader sr = new StreamReader("Fichas.txt");
                line = sr.ReadLine();

                while (line != null)
                {
                    documento D1 = new documento();
                    lineaSplit = line.Split('*');
                    D1.titulo = lineaSplit[2];
                    D1.clasificacion = lineaSplit[4];
                    D1.ISBN = lineaSplit[5];
                    Console.WriteLine(lineaSplit[2]);
                    ListaDocumentos.AddLast(D1);

                    line = sr.ReadLine();
                }
                sr.Close();
                return ListaDocumentos;
             * */
                LinkedList<string[]> nueva = readExcel.ExcelOpenSpreadsheetsList("C:\\Users\\ragomezr\\Documents\\SIGEB\\BD\\Migracion\\DataManagement\\DataManagement\\bin\\Debug\\Fichas.xlsx", 6);
                foreach (string[] act in nueva)
                {

                    documento D1 = new documento();
                    D1.titulo = act[2];
                    D1.clasificacion = act[4];
                    D1.ISBN = act[5];
                    ListaDocumentos.AddLast(D1);
                }
                return ListaDocumentos;
            }
            catch (Exception e)
            {
                return ListaDocumentos;
                Console.WriteLine("Exception: " + e.Message);
            }
        }

        public LinkedList<String> cargarMonosilabos()
        {
            String line;
            string[] lineaSplit;
            try
            {
                StreamReader sr = new StreamReader("monosilabos.txt");
                line = sr.ReadLine();

                while (line != null)
                {
                    ListaMonosilabos.AddLast(line);
                    line = sr.ReadLine();
                }
                sr.Close();
                return ListaMonosilabos;
            }
            catch (Exception e)
            {
                return ListaMonosilabos;
                Console.WriteLine("Exception: " + e.Message);
            }
        }
    }
}
